package dipl.visualizer.graphics.shape;

/// <summary>

import dipl.algorithm.math.fp.primitive.Point2df;
import dipl.visualizer.graphics.PaintContext;
import java.awt.Color;

///
/// </summary>
public abstract class AbstractShape implements IShape {

	//
	// METHODS
	//
	
	/// <summary>
	/// Construct abstract shape with given name
	/// </summary>
	/// <param name="name"></param>
	public AbstractShape( String name, Color color ) {
		this.name = name;
		this.color = color;
	}

	//
	// PUBLIC METHODS
	//

	public void Paint( PaintContext pc ) {
	}

	@Override
	public String toString() {
		return name;
	}

	//
	// PROPERTIES
	//
	
	/// <summary>
	/// Gets or sets shape's color
	/// </summary>
	public Color Color() {
		return color; 
	}

	public void SetColor( Color color ) {
		this.color = color;
	}

	public String Name() {
		return name; 
	}

	public void SetName( String name ) {
		this.name = name;
	}

	public Point2df PointOnShape() {
		return null;
	}

	//
	// MEMBERS
	//

	/// <summary>
	/// Shape's color
	/// </summary>
	protected Color color;

	/// <summary>
	/// Name of shape
	/// </summary>
	protected String name;
}
